home *** CD-ROM | disk | FTP | other *** search
- /*
- ==============================================================================
- WordUp Graphics Toolkit Version 5.0
- Demonstration Program 6
-
- Draws lines of different colours, then fades the colours in and out
- in various ways.
-
- *** PROJECT ***
- This program requires the file WGT5_WC.LIB to be linked.
-
- *** DATA FILES ***
- NONE
- WATCOM C++ VERSION
- ==============================================================================
- */
-
- #include <wgt5.h>
-
-
- void main(void)
- {
- short y;
- short oldmode;
- color palette[256];
- color blackpalette[256]; /* All value will be set to 0... */
- color temppal[256]; /* Another black palette */
-
- printf ("WGT Example #6\n\n");
- printf ("This program will draw an image on a black screen, fade it in slowly,\n");
- printf ("then fade it out. A new screen will fade in, and then it will fade out\n");
- printf ("in various portions at a time. The last screen will fade in while lines\n");
- printf ("are being drawn, and then fade out while lines are being drawn.\n");
- printf ("No keypresses are required once the program starts.\n");
- printf ("\n\nPress any key to continue.\n");
- getch ();
-
- if ( !vgadetected () )
- {
- printf("Error - VGA card required for any WGT program.\n");
- exit (0);
- }
-
- oldmode = wgetmode ();
- vga256 ();
-
- for (y = 0; y < 256; y++)
- wsetrgb (y, 0, 0, 0, blackpalette);
-
- wsetpalette (0, 255, blackpalette); /* Hide all colours while we draw */
-
- /* Now let's make a screen while all the colours are black. */
- wcls (0);
- for (y = 0; y < 500; y++)
- {
- wsetcolor (rand() % 256);
- wline (rand() % 320, rand() % 200, rand() % 320, rand() % 200);
- }
-
- /* Make a palette with some colours. */
- for (y = 0; y < 64; y++)
- wsetrgb (y, y, y, y, palette);
- for (y = 0; y < 64; y++)
- wsetrgb (y + 64, y, 0, 0, palette);
- for (y = 0; y < 64; y++)
- wsetrgb (y + 128, 0, y, 0, palette);
- for (y = 0; y < 64; y++)
- wsetrgb (y + 192, 0, 0, y, palette);
-
- /* Fade in the screen */
- wfade_in (1, 255, 20, palette);
- delay (1000);
-
- wfade_out (0, 255, 20, palette);
-
- /* Draw a new screen */
- wcls (0);
- for (y = 0; y < 320; y++)
- {
- wsetcolor (y % 200);
- wline (319 - y, 0, 319, (float)y / 320.0 * 200);
- wline (0, (float)y / 320.0 * 200, 319 - y, 199);
- }
-
- wfade_in (1, 200, 40, palette);
- delay (2000);
-
- wfade_out (1, 50, 10, palette);
- wfade_out (50, 75, 10, palette);
- wfade_out (75, 100, 10, palette);
- wfade_out (100, 125, 10, palette);
- wfade_out (125, 150, 10, palette);
- wfade_out (150, 175, 10, palette);
- wfade_out (175, 200, 10, palette);
-
- for (y = 0; y < 64; y++)
- {
- wline (rand() % 319, rand() % 199, rand() % 319, rand() % 199);
- wfade_in_once (1, 200, palette, temppal);
- wsetpalette (1, 255, temppal);
- delay (30);
- /* Fade in while drawing lines. */
- }
-
- delay (2000);
- for (y = 0; y < 64; y++)
- {
- wline (rand () % 319, rand () % 199, rand () % 319, rand () % 199);
- wfade_out_once (1, 200, palette);
- wsetpalette (1, 255, palette);
- delay (30);
- /* Fade out while drawing lines. */
- }
-
- wsetmode (oldmode);
- }
-